From f90ff5d50b9650470a50bfb822d9f4968915c390 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sat, 11 Feb 2012 02:38:48 +0100 Subject: [PATCH] treeview: Notify accessible about focus changes --- gtk/a11y/gtktreeviewaccessible.c | 12 ++++++++++++ gtk/gtktreeview.c | 9 +++++++++ 2 files changed, 21 insertions(+) diff --git a/gtk/a11y/gtktreeviewaccessible.c b/gtk/a11y/gtktreeviewaccessible.c index adb3a0bc49..af497b2dcf 100644 --- a/gtk/a11y/gtktreeviewaccessible.c +++ b/gtk/a11y/gtktreeviewaccessible.c @@ -2103,6 +2103,12 @@ _gtk_tree_view_accessible_add_state (GtkTreeView *treeview, accessible = GTK_TREE_VIEW_ACCESSIBLE (obj); + if (state == GTK_CELL_RENDERER_FOCUSED) + { + /* will add later */ + return; + } + for (i = 0; i < gtk_tree_view_get_n_columns (treeview); i++) { GtkCellAccessible *cell = peek_cell (accessible, @@ -2135,6 +2141,12 @@ _gtk_tree_view_accessible_remove_state (GtkTreeView *treeview, accessible = GTK_TREE_VIEW_ACCESSIBLE (obj); + if (state == GTK_CELL_RENDERER_FOCUSED) + { + /* will add later */ + return; + } + for (i = 0; i < gtk_tree_view_get_n_columns (treeview); i++) { GtkCellAccessible *cell = peek_cell (accessible, diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index decf78b0c0..d1b641bd0e 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -13188,6 +13188,10 @@ gtk_tree_view_real_set_cursor (GtkTreeView *tree_view, { if (!(flags & CURSOR_INVALID) && tree_view->priv->cursor_node) { + _gtk_tree_view_accessible_remove_state (tree_view, + tree_view->priv->cursor_tree, + tree_view->priv->cursor_node, + GTK_CELL_RENDERER_FOCUSED); _gtk_tree_view_queue_draw_node (tree_view, tree_view->priv->cursor_tree, tree_view->priv->cursor_node, @@ -13250,6 +13254,11 @@ gtk_tree_view_real_set_cursor (GtkTreeView *tree_view, tree_view->priv->cursor_node, NULL); } + + _gtk_tree_view_accessible_add_state (tree_view, + tree_view->priv->cursor_tree, + tree_view->priv->cursor_node, + GTK_CELL_RENDERER_FOCUSED); } g_signal_emit (tree_view, tree_view_signals[CURSOR_CHANGED], 0); -- 2.30.2